package ru.emms.codemeter.configuration;

import org.apache.commons.lang.StringUtils;
import ru.emms.codemeter.DataBaseManager;

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

/**
 * User: crazycoder
 * Date: Nov 14, 2010
 * Time: 11:19:50 PM
 */
public class SettingsPanel {

    private JPanel rootPanel;
    private JTextField connectionStringField;
    private JButton createTableButton;

    public SettingsPanel() {
        createTableButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(final ActionEvent e) {
                Configuration c=new Configuration();
                getData(c);
                DataBaseManager m=new DataBaseManager(c);
                m.createTables();
            }
        });
    }

    public JPanel getRootPanel() {
        return rootPanel;
    }

    /**
     * Загружаем в панель данные из data
     *
     * @param data текущая конфигурация
     */
    public void setData(Configuration data) {
        connectionStringField.setText(data.getConnectionString());
    }

    /**
     * Загружаем данные введенные пользователем из панели в конфигурацию data
     *
     * @param data контейнер для настроек
     */
    public void getData(Configuration data) {
        data.setConnectionString(connectionStringField.getText());
    }

    /**
     * Вызывается идеей чтобы проверить что пользователь что-либо поменял в панели настроек
     *
     * @param data текущие работающие настройки
     *
     * @return true если данные в объекте data отличаются от данных на панели настроек, иначе false
     */
    public boolean isModified(Configuration data) {
        return !StringUtils.equals(connectionStringField.getText(), data.getConnectionString());
    }
}
